<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>SemOpt: SetArguments Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">SemOpt
   &#160;<span id="projectnumber">0.2alpha5-SCC</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classSetArguments.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">SetArguments Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="SetArguments" -->
<p>Class encompassing a set of arguments.  
 <a href="classSetArguments.html#details">More...</a></p>

<p><a href="classSetArguments-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbba23977f0c9fc09a827b0b1c9df7a3"></a><!-- doxytag: member="SetArguments::SetArguments" ref="acbba23977f0c9fc09a827b0b1c9df7a3" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#acbba23977f0c9fc09a827b0b1c9df7a3">SetArguments</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple constructor. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a26fe5a8bfa786907cfef31c3fadba5d0">SetArguments</a> (<a class="el" href="classAF.html">AF</a> af, string names[], int length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a989d8986ecf49baa0dc982766c0a5df4">add_Argument</a> (<a class="el" href="classArgument.html">Argument</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an argument to the set.  <a href="#a989d8986ecf49baa0dc982766c0a5df4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#aff18fbe9d86a04099461245c780e52a5">~SetArguments</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArgument.html">Argument</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#ab4ddcd0942b0fa06de4ab9726e12edef">getArgumentByName</a> (string)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method returns the pointer to the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> whose name is given as parameter.  <a href="#ab4ddcd0942b0fa06de4ab9726e12edef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArgument.html">Argument</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a119cb47c6e77b8faf10135d90c5b68b9">getArgumentByNumber</a> (int num)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method returns the pointer to the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> whose identification number is given as parameter.  <a href="#a119cb47c6e77b8faf10135d90c5b68b9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a66d5b1cc6b684700c2394a8cf62ef7f0">cardinality</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retuns the cardinality of this set.  <a href="#a66d5b1cc6b684700c2394a8cf62ef7f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a91e548daa6d0859946c8604b1ebb8c5a">empty</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check wether or not this set is empty.  <a href="#a91e548daa6d0859946c8604b1ebb8c5a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArgumentsIterator.html">SetArgumentsIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#aaee058feaed861edf27739fa04f374ef">begin</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin of the iterator for this set of arguments.  <a href="#aaee058feaed861edf27739fa04f374ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArgumentsIterator.html">SetArgumentsIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a551272d71c803f64efc155b04f41e775">end</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">End of the iterator for this set of arguments.  <a href="#a551272d71c803f64efc155b04f41e775"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a0be6b8f77319a6aec9127eccd3ee43d9">exists</a> (<a class="el" href="classArgument.html">Argument</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether or not an argument exists in this set.  <a href="#a0be6b8f77319a6aec9127eccd3ee43d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a097087545407fc1eac981e31786e8168">is_subset_equal</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether this set is a subset of `other`.  <a href="#a097087545407fc1eac981e31786e8168"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a3d0a8527f2fa9ad3a888eb387c980a78">is_subset</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether this set is a proper subset of `other`.  <a href="#a3d0a8527f2fa9ad3a888eb387c980a78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a5e8996e87ad044c231611f0075fb600b">synchWithSet</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *otherset)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vector&lt; <a class="el" href="classSetArguments.html">SetArguments</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a83fb1143e82cef2d73fe859cda33f35c">getSingletons</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">convert a <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> in a vector of <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>  <a href="#a83fb1143e82cef2d73fe859cda33f35c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#aa74c9b4aeec56b029eed6e9f4435b0cb">getArgumentAttackersInSet</a> (<a class="el" href="classArgument.html">Argument</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a288d7f85ace570bba59f76d096d8131f">getArgumentAttacksInSet</a> (<a class="el" href="classArgument.html">Argument</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#ae056e1f79c10adb6c9a67215ab26edb9">getAllAttackers</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#ab7c0f1063978299f753e91e11f0818ef">getAllAttacks</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a614c3bbe2f99592b1199007b008c1785">getAllAttackersInSet</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">computes all the nodes who are attacked by other node in this set  <a href="#a614c3bbe2f99592b1199007b008c1785"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a74f991246010dfc03b5dcde3bf08370a">getAllAttacksInSet</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">computes all the nodes which attacks other nodes in this very set  <a href="#a74f991246010dfc03b5dcde3bf08370a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a8f48fd9f7b627db762d4fc2621160853">getSubsetAttackedBy</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the arguments in the caller set which are attacked by at least one node in attackers.  <a href="#a8f48fd9f7b627db762d4fc2621160853"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a0b7a69e50ba0141effc24c77f72195f8">getSubsetAttacks</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the arguments in the caller set which attacks at least one node in the attacked set.  <a href="#a0b7a69e50ba0141effc24c77f72195f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a49b6431d7a3324073dc01ae8d6648372">getExternalAttackers</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a5a24f9102351dae14b00f3cd4a4c272c">getExternalAttacks</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a58ec72f524211aaf319f6d50a2ab18ce">setSafeRestrict</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *, <a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">return all nodes contained in the caller set and contained in other.  <a href="#a58ec72f524211aaf319f6d50a2ab18ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a1b532abb70dde9aa99148be16ed59af1">merge</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *, <a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform the union of two <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>.  <a href="#a1b532abb70dde9aa99148be16ed59af1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#ae6761b6c360e440de55c2060ae70981c">intersect</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *, <a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Intersect this set the `other` set and write the result in `res`.  <a href="#ae6761b6c360e440de55c2060ae70981c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a80e626de391cabfc0a20da509c328055">setminus</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *, <a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Setmisun.  <a href="#a80e626de391cabfc0a20da509c328055"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a11b8009ff9cd0961731eac8ee95c4b55">remove</a> (<a class="el" href="classArgument.html">Argument</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove an argument from this set.  <a href="#a11b8009ff9cd0961731eac8ee95c4b55"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a09a6ac57967a3eb26006fd1c61e8cf4a">remove_All_Arguments</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a0de309ba2427eb3dce2f8ca93bb078e4">clean</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">removes all the pointers of Arguments inside this set.  <a href="#a0de309ba2427eb3dce2f8ca93bb078e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a3a3052b05dff877886f84ab99280d6f7">clone</a> (<a class="el" href="classSetArguments.html">SetArguments</a> *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clone this set.  <a href="#a3a3052b05dff877886f84ab99280d6f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a0c4a6994f83dfccf2d34022cb132b782">equal</a> (const <a class="el" href="classSetArguments.html">SetArguments</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">verify that 2 <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> are equal  <a href="#a0c4a6994f83dfccf2d34022cb132b782"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a22ed014efa057dd385c5ea89b6de5e94">operator==</a> (const <a class="el" href="classSetArguments.html">SetArguments</a> &amp;other) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#ac5045a8ee2c6160b131f70b52e64112e">operator!=</a> (const <a class="el" href="classSetArguments.html">SetArguments</a> &amp;other) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">TRUE if the 2 <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> called are not equal using == operator.  <a href="#ac5045a8ee2c6160b131f70b52e64112e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97ce4b4815433f7c573a5922eaec190d"></a><!-- doxytag: member="SetArguments::printNodeRelations" ref="a97ce4b4815433f7c573a5922eaec190d" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a97ce4b4815433f7c573a5922eaec190d">printNodeRelations</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">per ogni nodo del grafo, stampa l'insieme dei suoi nodi attaccanti e di quelli attaccati. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45abe3157dc0aceae68f130cc9613d08"></a><!-- doxytag: member="SetArguments::printGraph" ref="a45abe3157dc0aceae68f130cc9613d08" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a45abe3157dc0aceae68f130cc9613d08">printGraph</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">stampa prima il set dei nodi del grafo, e poi richiama nodeRelations <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a26bbc586d96178dfc64ee0cdb7601564"></a><!-- doxytag: member="SetArguments::graphHasEdges" ref="a26bbc586d96178dfc64ee0cdb7601564" args="(void)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a26bbc586d96178dfc64ee0cdb7601564">graphHasEdges</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">restituisce TRUE sse nel grafo esiste almeno un arco orientato <br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">map&lt; string, <a class="el" href="classArgument.html">Argument</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#aaae0e0a7aeffe21d3ec1e0254f4bf364">arguments</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">map&lt; int, string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSetArguments.html#a2214277313b65e0e19f63c5ccddc350e">key_assoc</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Class encompassing a set of arguments. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Federico Cerutti &lt;<a href="mailto:federico.cerutti@acm.org">federico.cerutti@acm.org</a>&gt; </dd></dl>
<dl class="copyright"><dt><b>Copyright:</b></dt><dd>GNU Public License v2 </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8h_source.html#l00045">45</a> of file <a class="el" href="SetArguments_8h_source.html">SetArguments.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a26fe5a8bfa786907cfef31c3fadba5d0"></a><!-- doxytag: member="SetArguments::SetArguments" ref="a26fe5a8bfa786907cfef31c3fadba5d0" args="(AF af, string names[], int length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html#acbba23977f0c9fc09a827b0b1c9df7a3">SetArguments::SetArguments</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classAF.html">AF</a>&#160;</td>
          <td class="paramname"><em>af</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>names</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>construct a new set of arguments by adding all the arguments whose names are inside the array passed</p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>names represents an array of string </li>
<li>names is not NULL </li>
<li>each element of names represents a valid name of an argument</li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">af</td><td>a structure created by parsing a file representing all the possible nodes </td></tr>
    <tr><td class="paramname">names</td><td>an array storing the names of all the nodes you want to have inside the set </td></tr>
    <tr><td class="paramname">length</td><td>indicates the length of the array passed as parameter </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00031">31</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>, <a class="el" href="AF_8cpp_source.html#l00095">AF::getArgumentByName()</a>, and <a class="el" href="SetArguments_8h_source.html#l00083">key_assoc</a>.</p>

</div>
</div>
<a class="anchor" id="aff18fbe9d86a04099461245c780e52a5"></a><!-- doxytag: member="SetArguments::~SetArguments" ref="aff18fbe9d86a04099461245c780e52a5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html#aff18fbe9d86a04099461245c780e52a5">SetArguments::~SetArguments</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destroy the current SetArgument</p>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>All the structured pointed by this class will <b>not</b> be destroyed </li>
<li>keyassoc structure itself will be erased; </li>
<li>argument structure itself will be erase; </li>
</ul>
</dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00971">971</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a989d8986ecf49baa0dc982766c0a5df4"></a><!-- doxytag: member="SetArguments::add_Argument" ref="a989d8986ecf49baa0dc982766c0a5df4" args="(Argument *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a989d8986ecf49baa0dc982766c0a5df4">SetArguments::add_Argument</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArgument.html">Argument</a> *&#160;</td>
          <td class="paramname"><em>arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add an argument to the set. </p>
<p>The function adds a new argument inside this <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>. Because this operation adds only a reference of the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a>, not the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> itself, it can be removed from the set easily without remove the instanc eof the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> itself. Moreover because in the map every key must be unique this function check if the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> is already inside the map: </p>
<ul>
<li>if it isn't the reference of the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> is added in the map; </li>
<li>if it is, the structure will<b>be</b> changed whatsoever</li>
</ul>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>argument must be not NULL </li>
</ul>
</dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>the argument (if it isn't already stored in the map) is stored in the map</li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>Pointer to an <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00056">56</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>, <a class="el" href="Argument_8cpp_source.html#l00035">Argument::getName()</a>, <a class="el" href="Argument_8cpp_source.html#l00054">Argument::getNumber()</a>, and <a class="el" href="SetArguments_8h_source.html#l00083">key_assoc</a>.</p>

<p>Referenced by <a class="el" href="Argument_8cpp_source.html#l00162">Argument::add_attackers()</a>, <a class="el" href="Argument_8cpp_source.html#l00152">Argument::add_attacks()</a>, <a class="el" href="Labelling_8cpp_source.html#l00140">Labelling::add_label()</a>, <a class="el" href="Grounded_8cpp_source.html#l00168">Grounded::computeNSet()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00628">getAllAttackers()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00680">getAllAttacks()</a>, <a class="el" href="Labelling_8cpp_source.html#l00110">Labelling::getSetArguments()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00197">getSingletons()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00415">getSubsetAttackedBy()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00478">getSubsetAttacks()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00898">intersect()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00817">merge()</a>, <a class="el" href="AF_8cpp_source.html#l00036">AF::readFile()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00073">SCCSEQ::SEQ()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00031">SetArguments()</a>, and <a class="el" href="SCCSEQ_8cpp_source.html#l00395">SCCSEQ::strongConnected()</a>.</p>

</div>
</div>
<a class="anchor" id="aaee058feaed861edf27739fa04f374ef"></a><!-- doxytag: member="SetArguments::begin" ref="aaee058feaed861edf27739fa04f374ef" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArgumentsIterator.html">SetArgumentsIterator</a> <a class="el" href="classSetArguments.html#aaee058feaed861edf27739fa04f374ef">SetArguments::begin</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Begin of the iterator for this set of arguments. </p>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname"><a class="el" href="classSetArgumentsIterator.html" title="Class defining a const iterator for the elements of a set of arguments.">SetArgumentsIterator</a></td><td>An iterator pointing at the first of the elements of this set </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00103">103</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>.</p>

<p>Referenced by <a class="el" href="AF_8cpp_source.html#l00124">AF::begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00362">clone()</a>, <a class="el" href="Grounded_8cpp_source.html#l00168">Grounded::computeNSet()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00919">equal()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00628">getAllAttackers()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00680">getAllAttacks()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00197">getSingletons()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00415">getSubsetAttackedBy()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00478">getSubsetAttacks()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00825">graphHasEdges()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00898">intersect()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00122">is_subset_equal()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00817">merge()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00942">operator==()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00795">printNodeRelations()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00049">SCCSEQ::SCC()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00073">SCCSEQ::SEQ()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00306">setminus()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00395">SCCSEQ::strongConnected()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00582">synchWithSet()</a>, and <a class="el" href="SCCSEQ_8cpp_source.html#l00273">SCCSEQ::toposort()</a>.</p>

</div>
</div>
<a class="anchor" id="a66d5b1cc6b684700c2394a8cf62ef7f0"></a><!-- doxytag: member="SetArguments::cardinality" ref="a66d5b1cc6b684700c2394a8cf62ef7f0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classSetArguments.html#a66d5b1cc6b684700c2394a8cf62ef7f0">SetArguments::cardinality</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retuns the cardinality of this set. </p>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">int</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00066">66</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00919">equal()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00143">is_subset()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00122">is_subset_equal()</a>, <a class="el" href="AF_8cpp_source.html#l00104">AF::numArgs()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00942">operator==()</a>.</p>

</div>
</div>
<a class="anchor" id="a0de309ba2427eb3dce2f8ca93bb078e4"></a><!-- doxytag: member="SetArguments::clean" ref="a0de309ba2427eb3dce2f8ca93bb078e4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a0de309ba2427eb3dce2f8ca93bb078e4">SetArguments::clean</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>removes all the pointers of Arguments inside this set. </p>
<p>The function removes all the pointers to Arguments inside this set; <b>no</b> Arguments will be freed in this operation. You can use this function to clean a <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> that later will be used again in other operations.</p>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>all the pointer to Arguments in this set will be erased. </li>
</ul>
</dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00986">986</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00348">remove_All_Arguments()</a>.</p>

</div>
</div>
<a class="anchor" id="a3a3052b05dff877886f84ab99280d6f7"></a><!-- doxytag: member="SetArguments::clone" ref="a3a3052b05dff877886f84ab99280d6f7" args="(SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a3a3052b05dff877886f84ab99280d6f7">SetArguments::clone</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>set</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clone this set. </p>
<p>This function clone only this structure. So, since the map storing the arguments stores the pointer, the pointer to the Arguments will <b>be cloned</b>, not the Arguments themselves!</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">set</td><td>The set that will be the new clone </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">void</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00362">362</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>.</p>

<p>Referenced by <a class="el" href="AF_8cpp_source.html#l00147">AF::get_arguments_copy()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00306">setminus()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00553">setSafeRestrict()</a>.</p>

</div>
</div>
<a class="anchor" id="a91e548daa6d0859946c8604b1ebb8c5a"></a><!-- doxytag: member="SetArguments::empty" ref="a91e548daa6d0859946c8604b1ebb8c5a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classSetArguments.html#a91e548daa6d0859946c8604b1ebb8c5a">SetArguments::empty</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check wether or not this set is empty. </p>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">bool</td><td>TRUE if the set is empty, FALSE otherwise </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00094">94</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>.</p>

<p>Referenced by <a class="el" href="Grounded_8cpp_source.html#l00168">Grounded::computeNSet()</a>, <a class="el" href="Labelling_8cpp_source.html#l00202">Labelling::empty()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00429">SCCSEQ::getFathersUnion()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00825">graphHasEdges()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00122">is_subset_equal()</a>, <a class="el" href="Grounded_8cpp_source.html#l00104">Grounded::isNempty()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00216">SCCSEQ::linkMacroGraph()</a>, and <a class="el" href="SCCSEQ_8cpp_source.html#l00273">SCCSEQ::toposort()</a>.</p>

</div>
</div>
<a class="anchor" id="a551272d71c803f64efc155b04f41e775"></a><!-- doxytag: member="SetArguments::end" ref="a551272d71c803f64efc155b04f41e775" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArgumentsIterator.html">SetArgumentsIterator</a> <a class="el" href="classSetArguments.html#a551272d71c803f64efc155b04f41e775">SetArguments::end</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>End of the iterator for this set of arguments. </p>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname"><a class="el" href="classSetArgumentsIterator.html" title="Class defining a const iterator for the elements of a set of arguments.">SetArgumentsIterator</a></td><td>An iterator pointing at the last of the elements of this set </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00112">112</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00362">clone()</a>, <a class="el" href="Grounded_8cpp_source.html#l00168">Grounded::computeNSet()</a>, <a class="el" href="AF_8cpp_source.html#l00133">AF::end()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00919">equal()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00628">getAllAttackers()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00680">getAllAttacks()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00197">getSingletons()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00415">getSubsetAttackedBy()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00478">getSubsetAttacks()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00825">graphHasEdges()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00898">intersect()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00122">is_subset_equal()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00817">merge()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00942">operator==()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00795">printNodeRelations()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00049">SCCSEQ::SCC()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00073">SCCSEQ::SEQ()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00306">setminus()</a>, <a class="el" href="SCCSEQ_8cpp_source.html#l00395">SCCSEQ::strongConnected()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00582">synchWithSet()</a>, and <a class="el" href="SCCSEQ_8cpp_source.html#l00273">SCCSEQ::toposort()</a>.</p>

</div>
</div>
<a class="anchor" id="a0c4a6994f83dfccf2d34022cb132b782"></a><!-- doxytag: member="SetArguments::equal" ref="a0c4a6994f83dfccf2d34022cb132b782" args="(const SetArguments &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classSetArguments.html#a0c4a6994f83dfccf2d34022cb132b782">SetArguments::equal</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classSetArguments.html">SetArguments</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>verify that 2 <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> are equal </p>
<p>This function is similar to the operator == but it does <b>not</b> keep trace of the order of the elements. So these 2 set are equals: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \{n01,n45,n13,n03\} \]" src="form_14.png"/>
</p>
 <p class="formulaDsp">
<img class="formulaDsp" alt="\[ \{n01,n13,n45,n03\} \]" src="form_15.png"/>
</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>the other set to confront </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TRUE if all the elements in the first set are contained in the secondo one <b>and</b> viceversa </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00919">919</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00066">cardinality()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>.</p>

<p>Referenced by <a class="el" href="SetArgumentsVector_8cpp_source.html#l00248">SetArgumentsVector::exist()</a>.</p>

</div>
</div>
<a class="anchor" id="a0be6b8f77319a6aec9127eccd3ee43d9"></a><!-- doxytag: member="SetArguments::exists" ref="a0be6b8f77319a6aec9127eccd3ee43d9" args="(Argument *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classSetArguments.html#a0be6b8f77319a6aec9127eccd3ee43d9">SetArguments::exists</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArgument.html">Argument</a> *&#160;</td>
          <td class="paramname"><em>arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check whether or not an argument exists in this set. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">bool</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00319">319</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>, and <a class="el" href="Argument_8cpp_source.html#l00035">Argument::getName()</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00415">getSubsetAttackedBy()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00478">getSubsetAttacks()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00122">is_subset_equal()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00306">setminus()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00582">synchWithSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ae056e1f79c10adb6c9a67215ab26edb9"></a><!-- doxytag: member="SetArguments::getAllAttackers" ref="ae056e1f79c10adb6c9a67215ab26edb9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#ae056e1f79c10adb6c9a67215ab26edb9">SetArguments::getAllAttackers</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>computes the set containing the attackers of all nodes stored in the setArgument. For example the return value of the call: </p>
<div class="fragment"><pre class="fragment">        cout &lt;&lt; *(setABC-&gt;getAllAttackers()) &lt;&lt; endl;
</pre></div><p> would be {D,A,B,E}</p>
<div align="center">
<img src="dot_inline_dotgraph_4.png" alt="dot_inline_dotgraph_4.png" border="0" usemap="#dot_inline_dotgraph_4.map"/>
<map name="dot_inline_dotgraph_4.map" id="dot_inline_dotgraph_4.map"></map>
</div>
<p>This because the function returns <b>all</b> the attackers of the set, not only those included in the set itself. If you want only the attackers incliuded in the caller set, you should use <a class="el" href="classSetArguments.html#a614c3bbe2f99592b1199007b008c1785" title="computes all the nodes who are attacked by other node in this set">getAllAttackersInSet()</a> function or: </p>
<div class="fragment"><pre class="fragment">        <a class="code" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>* allAttackers=setABC-&gt;<a class="code" href="classSetArguments.html#ae056e1f79c10adb6c9a67215ab26edb9">getAllAttackers</a>();
        allAttackers-&gt;synchwithSet(setABC);
</pre></div><dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>a new <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> is allocated in the heap and has to be freed <b>manually</b></li>
</ul>
</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>all the nodes which attacks at least one node in the caller set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00628">628</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00726">getAllAttackersInSet()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00773">getExternalAttackers()</a>.</p>

</div>
</div>
<a class="anchor" id="a614c3bbe2f99592b1199007b008c1785"></a><!-- doxytag: member="SetArguments::getAllAttackersInSet" ref="a614c3bbe2f99592b1199007b008c1785" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#a614c3bbe2f99592b1199007b008c1785">SetArguments::getAllAttackersInSet</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>computes all the nodes who are attacked by other node in this set </p>
<div align="center">
<img src="dot_inline_dotgraph_5.png" alt="dot_inline_dotgraph_5.png" border="0" usemap="#dot_inline_dotgraph_5.map"/>
<map name="dot_inline_dotgraph_5.map" id="dot_inline_dotgraph_5.map"></map>
</div>
<p>For example in the graph shown the result of the call: </p>
<div class="fragment"><pre class="fragment">        cout &lt;&lt; *(this-&gt;<a class="code" href="classSetArguments.html#a614c3bbe2f99592b1199007b008c1785" title="computes all the nodes who are attacked by other node in this set">getAllAttackersInSet</a>()) &lt;&lt; endl;
</pre></div><p> would be {A,B}</p>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>a new <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> instance is allocated in the heap and has to be freed <b>manually</b></li>
</ul>
</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the set of arguments which are attacked by at least one node in this very set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00726">726</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00628">getAllAttackers()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00582">synchWithSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ab7c0f1063978299f753e91e11f0818ef"></a><!-- doxytag: member="SetArguments::getAllAttacks" ref="ab7c0f1063978299f753e91e11f0818ef" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#ab7c0f1063978299f753e91e11f0818ef">SetArguments::getAllAttacks</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>computes the set containing the attacks of all nodes stored in the setArgument. For example the return value of the call: </p>
<div class="fragment"><pre class="fragment">        cout &lt;&lt; *(setABC-&gt;getAllAttacks()) &lt;&lt; endl;
</pre></div><p> would be {B,E,C}</p>
<div align="center">
<img src="dot_inline_dotgraph_6.png" alt="dot_inline_dotgraph_6.png" border="0" usemap="#dot_inline_dotgraph_6.map"/>
<map name="dot_inline_dotgraph_6.map" id="dot_inline_dotgraph_6.map"></map>
</div>
<p>This because the function returns <b>all</b> the attacks of the set, not only those included in the set itself. If you want only the attacks included in the caller set, you should use <a class="el" href="classSetArguments.html#a74f991246010dfc03b5dcde3bf08370a" title="computes all the nodes which attacks other nodes in this very set">getAllAttacksInSet()</a> function or: </p>
<div class="fragment"><pre class="fragment">        <a class="code" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>* allAttacks=setABC-&gt;<a class="code" href="classSetArguments.html#ab7c0f1063978299f753e91e11f0818ef">getAllAttacks</a>();
        allAttacks-&gt;synchwithSet(setABC);
</pre></div><dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>a new <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> is allocated in the heap and has to be freed <b>manually</b></li>
</ul>
</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>all the nodes which attacks at least one node in the caller set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00680">680</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00766">getAllAttacksInSet()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00784">getExternalAttacks()</a>.</p>

</div>
</div>
<a class="anchor" id="a74f991246010dfc03b5dcde3bf08370a"></a><!-- doxytag: member="SetArguments::getAllAttacksInSet" ref="a74f991246010dfc03b5dcde3bf08370a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#a74f991246010dfc03b5dcde3bf08370a">SetArguments::getAllAttacksInSet</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>computes all the nodes which attacks other nodes in this very set </p>
<div align="center">
<img src="dot_inline_dotgraph_7.png" alt="dot_inline_dotgraph_7.png" border="0" usemap="#dot_inline_dotgraph_7.map"/>
<map name="dot_inline_dotgraph_7.map" id="dot_inline_dotgraph_7.map"></map>
</div>
<p>For example in the graph shown the result of the call: </p>
<div class="fragment"><pre class="fragment">        cout &lt;&lt; *(this-&gt;<a class="code" href="classSetArguments.html#a74f991246010dfc03b5dcde3bf08370a" title="computes all the nodes which attacks other nodes in this very set">getAllAttacksInSet</a>()) &lt;&lt; endl;
</pre></div><p> would be {A,B}</p>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>a new <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> instance is allocated in the heap and has to be freed <b>manually</b></li>
</ul>
</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the set of arguments which attacks at least one node in this very set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00766">766</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00680">getAllAttacks()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00582">synchWithSet()</a>.</p>

</div>
</div>
<a class="anchor" id="aa74c9b4aeec56b029eed6e9f4435b0cb"></a><!-- doxytag: member="SetArguments::getArgumentAttackersInSet" ref="aa74c9b4aeec56b029eed6e9f4435b0cb" args="(Argument *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#aa74c9b4aeec56b029eed6e9f4435b0cb">SetArguments::getArgumentAttackersInSet</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArgument.html">Argument</a> *&#160;</td>
          <td class="paramname"><em>arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>computes the nodes which are attacks the argument passed as parameter. Both the node and its attackers are contained in the caller set. For example in this graph: </p>
<div align="center">
<img src="dot_inline_dotgraph_8.png" alt="dot_inline_dotgraph_8.png" border="0" usemap="#dot_inline_dotgraph_8.map"/>
<map name="dot_inline_dotgraph_8.map" id="dot_inline_dotgraph_8.map"></map>
</div>
<p> the return value of the call: </p>
<div class="fragment"><pre class="fragment">                result=<a class="code" href="classSetArguments.html#acbba23977f0c9fc09a827b0b1c9df7a3" title="Simple constructor.">SetArguments</a>();
                setarg-&gt;getArgumentAttackersInSet(A,result);
</pre></div><p> would be only {} because E is not contained in the set "setarg".</p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>arg is contained in the caller set; </li>
<li>arg not NULL; </li>
<li>setarg is not NULL;</li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">arg</td><td>the argument which is attacked by other arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a set of nodes (setArguments) which attacks arg parameter and are contained in the caller set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00285">285</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="Argument_8cpp_source.html#l00200">Argument::get_attackers()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00582">synchWithSet()</a>.</p>

</div>
</div>
<a class="anchor" id="a288d7f85ace570bba59f76d096d8131f"></a><!-- doxytag: member="SetArguments::getArgumentAttacksInSet" ref="a288d7f85ace570bba59f76d096d8131f" args="(Argument *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#a288d7f85ace570bba59f76d096d8131f">SetArguments::getArgumentAttacksInSet</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArgument.html">Argument</a> *&#160;</td>
          <td class="paramname"><em>arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>computes the nodes which are attacked by the argument passed as parameter. Both the node and its attacks are contained in the caller set. For example in this graph: </p>
<div align="center">
<img src="dot_inline_dotgraph_9.png" alt="dot_inline_dotgraph_9.png" border="0" usemap="#dot_inline_dotgraph_9.map"/>
<map name="dot_inline_dotgraph_9.map" id="dot_inline_dotgraph_9.map"></map>
</div>
<p> the return value of the call: </p>
<div class="fragment"><pre class="fragment">                result=<a class="code" href="classSetArguments.html#acbba23977f0c9fc09a827b0b1c9df7a3" title="Simple constructor.">SetArguments</a>();
                setarg-&gt;getArgumentAttacksInSet(A,result);
</pre></div><p> would be only {B} because D and E are not contained in the set "setarg".</p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>arg is contained in the caller set; </li>
<li>arg not NULL; </li>
<li>setarg is not NULL;</li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">arg</td><td>the argument which attack other arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a set of nodes (setArguments) which are attacked by arg parameter and are contained in the caller set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00242">242</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="Argument_8cpp_source.html#l00191">Argument::get_attacks()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00582">synchWithSet()</a>.</p>

<p>Referenced by <a class="el" href="SCCSEQ_8cpp_source.html#l00395">SCCSEQ::strongConnected()</a>.</p>

</div>
</div>
<a class="anchor" id="ab4ddcd0942b0fa06de4ab9726e12edef"></a><!-- doxytag: member="SetArguments::getArgumentByName" ref="ab4ddcd0942b0fa06de4ab9726e12edef" args="(string)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArgument.html">Argument</a> * <a class="el" href="classSetArguments.html#ab4ddcd0942b0fa06de4ab9726e12edef">SetArguments::getArgumentByName</a> </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method returns the pointer to the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> whose name is given as parameter. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the argument </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">Argument*</td><td>The pointer to the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> object, or NULL if not found </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00075">75</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>.</p>

<p>Referenced by <a class="el" href="AF_8cpp_source.html#l00095">AF::getArgumentByName()</a>.</p>

</div>
</div>
<a class="anchor" id="a119cb47c6e77b8faf10135d90c5b68b9"></a><!-- doxytag: member="SetArguments::getArgumentByNumber" ref="a119cb47c6e77b8faf10135d90c5b68b9" args="(int num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArgument.html">Argument</a> * <a class="el" href="classSetArguments.html#a119cb47c6e77b8faf10135d90c5b68b9">SetArguments::getArgumentByNumber</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method returns the pointer to the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> whose identification number is given as parameter. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>The name of the argument </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">Argument*</td><td>The pointer to the <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> object, or NULL if not found </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00085">85</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>, and <a class="el" href="SetArguments_8h_source.html#l00083">key_assoc</a>.</p>

<p>Referenced by <a class="el" href="AF_8cpp_source.html#l00115">AF::getArgumentByNumber()</a>, and <a class="el" href="SCCSEQ_8cpp_source.html#l00216">SCCSEQ::linkMacroGraph()</a>.</p>

</div>
</div>
<a class="anchor" id="a49b6431d7a3324073dc01ae8d6648372"></a><!-- doxytag: member="SetArguments::getExternalAttackers" ref="a49b6431d7a3324073dc01ae8d6648372" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#a49b6431d7a3324073dc01ae8d6648372">SetArguments::getExternalAttackers</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p><b>memory alloc</b> Restituisce l'unione di tutti i nodi non in this che attaccano nodi in this. </p>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00773">773</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00628">getAllAttackers()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00306">setminus()</a>.</p>

</div>
</div>
<a class="anchor" id="a5a24f9102351dae14b00f3cd4a4c272c"></a><!-- doxytag: member="SetArguments::getExternalAttacks" ref="a5a24f9102351dae14b00f3cd4a4c272c" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#a5a24f9102351dae14b00f3cd4a4c272c">SetArguments::getExternalAttacks</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p><b>memory alloc</b> Restituisce l'unione di tutti i nodi non in this attaccati da nodi in this. </p>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00784">784</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00680">getAllAttacks()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00306">setminus()</a>.</p>

</div>
</div>
<a class="anchor" id="a83fb1143e82cef2d73fe859cda33f35c"></a><!-- doxytag: member="SetArguments::getSingletons" ref="a83fb1143e82cef2d73fe859cda33f35c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt; <a class="el" href="classSetArguments.html">SetArguments</a> * &gt; <a class="el" href="classSetArguments.html#a83fb1143e82cef2d73fe859cda33f35c">SetArguments::getSingletons</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>convert a <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> in a vector of <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> </p>
<p>The figure shows the behaviour of the function: red stuff is created by this function. Note that the called <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> will <b>not</b> be changed by this function.</p>
<div align="center">
<img src="dot_inline_dotgraph_10.png" alt="dot_inline_dotgraph_10.png" border="0" usemap="#dot_inline_dotgraph_10.map"/>
<map name="dot_inline_dotgraph_10.map" id="dot_inline_dotgraph_10.map"></map>
</div>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>if "n" is the number of Arguments pointed by this <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>, "n" new <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> will be created inside the memory;</li>
</ul>
</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a vector of <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>, where every element is composed by a single <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a> held by the calling instance. </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00197">197</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>.</p>

</div>
</div>
<a class="anchor" id="a8f48fd9f7b627db762d4fc2621160853"></a><!-- doxytag: member="SetArguments::getSubsetAttackedBy" ref="a8f48fd9f7b627db762d4fc2621160853" args="(SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#a8f48fd9f7b627db762d4fc2621160853">SetArguments::getSubsetAttackedBy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>attackersSet</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the arguments in the caller set which are attacked by at least one node in attackers. </p>
<p>The function returns all the nodes which are contained in the caller setArguments attacked by at least one node in attackingSetArguments. For example in this graph the function would return {A,C}</p>
<div align="center">
<img src="dot_inline_dotgraph_11.png" alt="dot_inline_dotgraph_11.png" border="0" usemap="#dot_inline_dotgraph_11.map"/>
<map name="dot_inline_dotgraph_11.map" id="dot_inline_dotgraph_11.map"></map>
</div>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>attackers correctly constructed </li>
</ul>
</dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>a new <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> instance is allocated in the heap and must be freed <b>manually</b></li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">attackingSetArguments</td><td>the set attacking the caller set </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the set of arguments which are attacked by at least one node in attackers set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00415">415</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00319">exists()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>.</p>

<p>Referenced by <a class="el" href="Grounded_8cpp_source.html#l00046">Grounded::doGrounded()</a>, and <a class="el" href="SCCSEQ_8cpp_source.html#l00216">SCCSEQ::linkMacroGraph()</a>.</p>

</div>
</div>
<a class="anchor" id="a0b7a69e50ba0141effc24c77f72195f8"></a><!-- doxytag: member="SetArguments::getSubsetAttacks" ref="a0b7a69e50ba0141effc24c77f72195f8" args="(SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSetArguments.html">SetArguments</a> * <a class="el" href="classSetArguments.html#a0b7a69e50ba0141effc24c77f72195f8">SetArguments::getSubsetAttacks</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>attacked</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the arguments in the caller set which attacks at least one node in the attacked set. </p>
<p>The function returns all the nodes which are contained in the caller setArguments and attack at least one node in "attacked" SetArgument. For example in this graph the function would return {A}</p>
<div align="center">
<img src="dot_inline_dotgraph_12.png" alt="dot_inline_dotgraph_12.png" border="0" usemap="#dot_inline_dotgraph_12.map"/>
<map name="dot_inline_dotgraph_12.map" id="dot_inline_dotgraph_12.map"></map>
</div>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>attackers correctly constructed </li>
</ul>
</dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>a new <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> instance is allocated in the heap and must be freed <b>manually</b></li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">attackingSetArguments</td><td>the set attacked by the caller set </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the set of arguments which attackS at least one node in attacked set </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00478">478</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00319">exists()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>.</p>

<p>Referenced by <a class="el" href="SCCSEQ_8cpp_source.html#l00429">SCCSEQ::getFathersUnion()</a>.</p>

</div>
</div>
<a class="anchor" id="ae6761b6c360e440de55c2060ae70981c"></a><!-- doxytag: member="SetArguments::intersect" ref="ae6761b6c360e440de55c2060ae70981c" args="(SetArguments *, SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#ae6761b6c360e440de55c2060ae70981c">SetArguments::intersect</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Intersect this set the `other` set and write the result in `res`. </p>
<p>The funcion compute the operation of intersection between two sets: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ A = \{a_1; a_2; ... ; a_n\} \]" src="form_11.png"/>
</p>
 <p class="formulaDsp">
<img class="formulaDsp" alt="\[ B = \{b_1; b_2; ... ; b_m\} \]" src="form_12.png"/>
</p>
 <p class="formulaDsp">
<img class="formulaDsp" alt="\[ A \cap B \hat{=} \{c | c \in A, c \in B \} \]" src="form_13.png"/>
</p>
<p>For example in the graph shown calling setIntersect() will return as output {}</p>
<div align="center">
<img src="dot_inline_dotgraph_13.png" alt="dot_inline_dotgraph_13.png" border="0" usemap="#dot_inline_dotgraph_13.map"/>
<map name="dot_inline_dotgraph_13.map" id="dot_inline_dotgraph_13.map"></map>
</div>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>other not NULL </li>
<li>result has already been initialized with a constructor </li>
</ul>
</dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>in result the intersection nodes has been <b>added</b> to the previos content of the <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a></li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>The second term of the intersection </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>The result of the intersection </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00898">898</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>.</p>

</div>
</div>
<a class="anchor" id="a3d0a8527f2fa9ad3a888eb387c980a78"></a><!-- doxytag: member="SetArguments::is_subset" ref="a3d0a8527f2fa9ad3a888eb387c980a78" args="(SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classSetArguments.html#a3d0a8527f2fa9ad3a888eb387c980a78">SetArguments::is_subset</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check whether this set is a proper subset of `other`. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>The other set to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">bool</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00143">143</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00066">cardinality()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00122">is_subset_equal()</a>.</p>

</div>
</div>
<a class="anchor" id="a097087545407fc1eac981e31786e8168"></a><!-- doxytag: member="SetArguments::is_subset_equal" ref="a097087545407fc1eac981e31786e8168" args="(SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classSetArguments.html#a097087545407fc1eac981e31786e8168">SetArguments::is_subset_equal</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check whether this set is a subset of `other`. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>The other set to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">bool</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00122">122</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00066">cardinality()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00094">empty()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00319">exists()</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00143">is_subset()</a>.</p>

</div>
</div>
<a class="anchor" id="a1b532abb70dde9aa99148be16ed59af1"></a><!-- doxytag: member="SetArguments::merge" ref="a1b532abb70dde9aa99148be16ed59af1" args="(SetArguments *, SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a1b532abb70dde9aa99148be16ed59af1">SetArguments::merge</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform the union of two <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">the</td><td>set to be merged with </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">the</td><td>union of these 2 sets </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00817">817</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>.</p>

<p>Referenced by <a class="el" href="Grounded_8cpp_source.html#l00046">Grounded::doGrounded()</a>.</p>

</div>
</div>
<a class="anchor" id="ac5045a8ee2c6160b131f70b52e64112e"></a><!-- doxytag: member="SetArguments::operator!=" ref="ac5045a8ee2c6160b131f70b52e64112e" args="(const SetArguments &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SetArguments::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classSetArguments.html">SetArguments</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>TRUE if the 2 <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> called are not equal using == operator. </p>
<p>For information go to the documentation of == operator</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>the set to compare with </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TRUE if the sets are not equal in the == sense, FALSE otherwise </dd></dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00959">959</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a22ed014efa057dd385c5ea89b6de5e94"></a><!-- doxytag: member="SetArguments::operator==" ref="a22ed014efa057dd385c5ea89b6de5e94" args="(const SetArguments &amp;other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SetArguments::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classSetArguments.html">SetArguments</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>It should be more efficient of <a class="el" href="classSetArguments.html#a0c4a6994f83dfccf2d34022cb132b782" title="verify that 2 SetArguments are equal">equal()</a>, so use it whenever possible.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>The other term of the comparison </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">bool</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00942">942</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00066">cardinality()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>.</p>

</div>
</div>
<a class="anchor" id="a11b8009ff9cd0961731eac8ee95c4b55"></a><!-- doxytag: member="SetArguments::remove" ref="a11b8009ff9cd0961731eac8ee95c4b55" args="(Argument *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a11b8009ff9cd0961731eac8ee95c4b55">SetArguments::remove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArgument.html">Argument</a> *&#160;</td>
          <td class="paramname"><em>arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove an argument from this set. </p>
<p>Removes an argument from the current <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a>. Because the arguments themselves stored in the structured are pointer, using this function will delete only the pointer itself stored in map: so this function <b>will not</b> erase the structured pointed.</p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>arg is not NULL </li>
</ul>
</dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>the reference stored in this structure is removed; </li>
<li>the structure pointed by the pointer stored in this structure remain <b>intact</b></li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>the argument to remove from this map </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00338">338</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>, and <a class="el" href="Argument_8cpp_source.html#l00035">Argument::getName()</a>.</p>

<p>Referenced by <a class="el" href="Argument_8cpp_source.html#l00182">Argument::remove_attackers()</a>, <a class="el" href="Argument_8cpp_source.html#l00172">Argument::remove_attacks()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00306">setminus()</a>.</p>

</div>
</div>
<a class="anchor" id="a09a6ac57967a3eb26006fd1c61e8cf4a"></a><!-- doxytag: member="SetArguments::remove_All_Arguments" ref="a09a6ac57967a3eb26006fd1c61e8cf4a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a09a6ac57967a3eb26006fd1c61e8cf4a">SetArguments::remove_All_Arguments</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Removes all the arguments in the <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> keeping it ready to store new values. </p>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00348">348</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8h_source.html#l00051">arguments</a>, and <a class="el" href="SetArguments_8h_source.html#l00083">key_assoc</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00986">clean()</a>.</p>

</div>
</div>
<a class="anchor" id="a80e626de391cabfc0a20da509c328055"></a><!-- doxytag: member="SetArguments::setminus" ref="a80e626de391cabfc0a20da509c328055" args="(SetArguments *, SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a80e626de391cabfc0a20da509c328055">SetArguments::setminus</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Setmisun. </p>
<p>Implements the operator of set minus: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ A-B={a \in A | a \not \in B} \]" src="form_3.png"/>
</p>
<p>The operation return simply a <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> without interfere with the Arguments pointed by it</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>The other term of the subtraction </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>The result of the subtraction </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00306">306</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00362">clone()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00319">exists()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00338">remove()</a>.</p>

<p>Referenced by <a class="el" href="Grounded_8cpp_source.html#l00046">Grounded::doGrounded()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00773">getExternalAttackers()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00784">getExternalAttacks()</a>.</p>

</div>
</div>
<a class="anchor" id="a58ec72f524211aaf319f6d50a2ab18ce"></a><!-- doxytag: member="SetArguments::setSafeRestrict" ref="a58ec72f524211aaf319f6d50a2ab18ce" args="(SetArguments *, SetArguments *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a58ec72f524211aaf319f6d50a2ab18ce">SetArguments::setSafeRestrict</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return all nodes contained in the caller set and contained in other. </p>
<p>Computes the nodes inside the caller set which are also stored in "other" set. Theoretically, this function implements the following definition regarding the <em>nodes</em>: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \Gamma_1 = \{ \gamma_{11}; \gamma_{12} ; ... ; \gamma_{1n} \} \]" src="form_4.png"/>
</p>
 <p class="formulaDsp">
<img class="formulaDsp" alt="\[ \Gamma_2 = \{ \gamma_{21}; \gamma_{22} ; ... ; \gamma_{2n} \} \]" src="form_5.png"/>
</p>
 <p class="formulaDsp">
<img class="formulaDsp" alt="\[ \Gamma_2 \subseteq \Gamma_1 \]" src="form_6.png"/>
</p>
 <p class="formulaDsp">
<img class="formulaDsp" alt="\[ \Gamma_1 \downarrow \Gamma_2 \hat{=} \{ \gamma \in \Gamma_1 | \gamma \in \Gamma_2 \} \]" src="form_7.png"/>
</p>
<p> and this definition regarding the <em>arcs</em>: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ {\Gamma}_1 \downarrow {\Gamma}_2 \hat{=} \{ e_{ij} \in {\Gamma}_1 | i \in {\Gamma}_2, j \in {\Gamma}_2 \} \]" src="form_8.png"/>
</p>
<p> In other words <img class="formulaInl" alt="$ \Gamma_1 \downarrow \Gamma_2 $" src="form_9.png"/> returns always <img class="formulaInl" alt="$ \Gamma_2 $" src="form_10.png"/> but all the arcs that get in or get out from <img class="formulaInl" alt="$ \Gamma_2 $" src="form_10.png"/> are discarded. The figure shows in a clearer way the definition:</p>
<div align="center">
<img src="dot_inline_dotgraph_14.png" alt="dot_inline_dotgraph_14.png" border="0" usemap="#dot_inline_dotgraph_14.map"/>
<map name="dot_inline_dotgraph_14.map" id="dot_inline_dotgraph_14.map"></map>
</div>
<p>the red elements represents what remain if <img class="formulaInl" alt="$ \Gamma_1 \downarrow \Gamma_2 $" src="form_9.png"/> is executed. However the data structures simplify this operation: being the attacks/attackers information stopred in the Arguments (and not in <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> themselves) the <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> has only to store what nodes are in the set, and not what arcs. Selecting what arcs must be kept in considerartion will be basilar in deciding what type of get_attacks/get_attakcers function will be used. For further information, read the documentation of all get_attacks / get_attackers functions.</p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><ul>
<li>the caller <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> has to contains "other" set </li>
<li>"other" set must be not NULL </li>
<li>"result" must be already initialized </li>
</ul>
</dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd><ul>
<li>"result" data structure will be filled with information</li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>represents the <img class="formulaInl" alt="$ \Gamma_2 $" src="form_10.png"/> set </td></tr>
    <tr><td class="paramname">result</td><td>represents the <img class="formulaInl" alt="$ \Gamma_1 \downarrow \Gamma_2 $" src="form_9.png"/> set </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00553">553</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00362">clone()</a>.</p>

</div>
</div>
<a class="anchor" id="a5e8996e87ad044c231611f0075fb600b"></a><!-- doxytag: member="SetArguments::synchWithSet" ref="a5e8996e87ad044c231611f0075fb600b" args="(SetArguments *otherset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classSetArguments.html#a5e8996e87ad044c231611f0075fb600b">SetArguments::synchWithSet</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classSetArguments.html">SetArguments</a> *&#160;</td>
          <td class="paramname"><em>otherset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>removes all the occurence of nodes not in otherset in the set calling this function. For example:</p>
<div align="center">
<img src="dot_inline_dotgraph_15.png" alt="dot_inline_dotgraph_15.png" border="0" usemap="#dot_inline_dotgraph_15.map"/>
<map name="dot_inline_dotgraph_15.map" id="dot_inline_dotgraph_15.map"></map>
</div>
<p>if the <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> {A,B,C} would call the function with otherset set to {A,B,C,D,E} the function would return {A,B,C}</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">otherset</td><td>the set to be synched with </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="SetArguments_8cpp_source.html#l00582">582</a> of file <a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a>.</p>

<p>References <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00319">exists()</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00726">getAllAttackersInSet()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00766">getAllAttacksInSet()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00285">getArgumentAttackersInSet()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00242">getArgumentAttacksInSet()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="aaae0e0a7aeffe21d3ec1e0254f4bf364"></a><!-- doxytag: member="SetArguments::arguments" ref="aaae0e0a7aeffe21d3ec1e0254f4bf364" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">map&lt;string, <a class="el" href="classArgument.html">Argument</a> *&gt; <a class="el" href="classSetArguments.html#aaae0e0a7aeffe21d3ec1e0254f4bf364">SetArguments::arguments</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>represents a map that associate for each argument Identifier (a string) the argument itself. Note that the arguments are stored by reference, so different <a class="el" href="classSetArguments.html" title="Class encompassing a set of arguments.">SetArguments</a> can point to the same <a class="el" href="classArgument.html" title="Class representing an Argument.">Argument</a>. This function is of type map because in this way the search of one element is much quicker. </p>

<p>Definition at line <a class="el" href="SetArguments_8h_source.html#l00051">51</a> of file <a class="el" href="SetArguments_8h_source.html">SetArguments.h</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00103">begin()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00066">cardinality()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00094">empty()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00112">end()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00919">equal()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00319">exists()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00075">getArgumentByName()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00085">getArgumentByNumber()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00338">remove()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00348">remove_All_Arguments()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>.</p>

</div>
</div>
<a class="anchor" id="a2214277313b65e0e19f63c5ccddc350e"></a><!-- doxytag: member="SetArguments::key_assoc" ref="a2214277313b65e0e19f63c5ccddc350e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">map&lt;int, string&gt; <a class="el" href="classSetArguments.html#a2214277313b65e0e19f63c5ccddc350e">SetArguments::key_assoc</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Represents a map that associate for each argument Identifier (an integer) the relative argument Identfier (a stirng). In this way you can easily represents a argument both by name and by integer.</p>
<div align="center">
<img src="dot_inline_dotgraph_16.png" alt="dot_inline_dotgraph_16.png" border="0" usemap="#dot_inline_dotgraph_16.map"/>
<map name="dot_inline_dotgraph_16.map" id="dot_inline_dotgraph_16.map"></map>
</div>
 
<p>Definition at line <a class="el" href="SetArguments_8h_source.html#l00083">83</a> of file <a class="el" href="SetArguments_8h_source.html">SetArguments.h</a>.</p>

<p>Referenced by <a class="el" href="SetArguments_8cpp_source.html#l00056">add_Argument()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00085">getArgumentByNumber()</a>, <a class="el" href="SetArguments_8cpp_source.html#l00348">remove_All_Arguments()</a>, and <a class="el" href="SetArguments_8cpp_source.html#l00014">SetArguments()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="SetArguments_8h_source.html">SetArguments.h</a></li>
<li>src/<a class="el" href="SetArguments_8cpp_source.html">SetArguments.cpp</a></li>
</ul>
</div><!-- contents -->
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="classSetArguments.html">SetArguments</a>      </li>

    <li class="footer">Generated on Fri Jan 17 2014 11:47:52 for SemOpt by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
